package priv.pattern.commandmode.combination.macrocommand;

import priv.pattern.commandmode.combination.basics.Kitchen;
import priv.pattern.commandmode.combination.basics.impl.NoodleCommand;
import priv.pattern.commandmode.combination.basics.impl.PieCommand;

/*
 * 作者：m鹏h
 * 时间；2024/8/8 23:28
 * 描述：宏命令 客户端
 **/
public class MacroCommandTest {

 public static void main(String[] args) {
  // 创建后厨对象
  Kitchen kitchen = new Kitchen();

  // 创建一个服务员对象
  WaiterB waiter = new WaiterB();

  // 创建做面和做馅饼的命令对象
  NoodleCommand noodleCommand = new NoodleCommand(kitchen);
  PieCommand pieCommand = new PieCommand(kitchen);

  // 服务员来到1号餐桌：我们有面条和馅饼，请问4位顾客想吃什么
  // 客人A：我要一碗面条
  waiter.orderDish(noodleCommand);
  // 客人B：给我也来一碗面条
  waiter.orderDish(noodleCommand);
  // 客人C：我要一个馅饼加一碗面条
  waiter.orderDish(pieCommand);
  waiter.orderDish(noodleCommand);
  // 客人D：我要一碗面条
  waiter.orderDish(noodleCommand);

  // 服务员：总共4碗面条，一个馅饼，4位请稍等。
  waiter.orderOver();

 }

}
